package com.sxj.corejava.code08_常用类.日期类;

import com.sxj.corejava.util.DateUtil;

import java.util.Calendar;
import java.util.Date;

/**
 * @author 石小俊
 * @date 2024年04月18日 18:05
 */
public class Test05_日历类 {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);
        // 获取当前时间
        Date date = calendar.getTime();
        System.out.println(date);

        // 设置一个昨天的日期
        calendar.setTime(DateUtil.getYesterday(new Date()));
        System.out.println(DateUtil.toString(calendar.getTime()));

        System.out.println(calendar.get(Calendar.YEAR) + "年");
        // 月份获取的值是0-11,分别表示1-12月
        System.out.println((calendar.get(Calendar.MONTH) + 1) + "月");
        System.out.println(calendar.get(Calendar.DATE) + "日");
        System.out.println(calendar.get(Calendar.DAY_OF_MONTH) + "日");
        // 十二小时制
        System.out.println(calendar.get(Calendar.HOUR) + "时");
        // 二十四小时制
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY) + "时");
        System.out.println(calendar.get(Calendar.MINUTE) + "分");
        System.out.println(calendar.get(Calendar.SECOND) + "秒");
        System.out.println(calendar.get(Calendar.MILLISECOND) + "毫秒");

        // set
        calendar.set(Calendar.DATE,19);
        calendar.set(Calendar.MONTH,5-1);
        calendar.set(Calendar.YEAR,2025);
        System.out.println(DateUtil.toString(calendar.getTime()));

        // 年份-1
        calendar.add(Calendar.YEAR,-1);
        // 月份+1
        calendar.add(Calendar.MONTH,1);
        System.out.println(DateUtil.toString(calendar.getTime()));

        System.out.println("毫秒数:"+calendar.getTimeInMillis());
        Date date2 = new Date(calendar.getTimeInMillis());
        System.out.println(DateUtil.toString(date2));

        // 清空日期
        calendar.clear();
        System.out.println(DateUtil.toString(calendar.getTime()));

        // 给定指定年份与月份,求出这一年这个月共多少天
        System.out.println("2024年2月共有:"+DateUtil.getDay(2024,2)+"天");
        System.out.println("2023年2月共有:"+DateUtil.getDay(2023,2)+"天");
        System.out.println("2024年2月共有:"+DateUtil.getDay2(2024,2)+"天");
        System.out.println("2023年2月共有:"+DateUtil.getDay2(2023,2)+"天");
    }
}
